package com.erp.order.domain.bo;

import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.core.web.oldDomain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * 订单发货业务对象 erp_send_out_goods
 *
 * @author erp
 * @date 2023-03-31
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class ErpSendOutGoodsBo extends BaseEntity {

    /**
     * 主键
     */
    @NotNull(message = "主键不能为空", groups = { EditGroup.class })
    private Long id;

    /**
     * 订单ID;对应4px的ref_no,客户参考号
     */
    @NotBlank(message = "订单ID;对应4px的ref_no,客户参考号不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long orderId;

    /**
     * 国内订单号
     */
    @NotBlank(message = "国内订单号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String trackingNo;

    /**
     * 4px跟踪号;4PX唯一跟踪号，可用于在4PX轨迹系统查询
     */
    @NotBlank(message = "4px跟踪号;4PX唯一跟踪号，可用于在4PX轨迹系统查询不能为空", groups = { AddGroup.class, EditGroup.class })
    private String fpxTrackingNo;

    /**
     * 国际订单号;物流单号
     */
    @NotBlank(message = "国际订单号;物流单号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String shippingNo;

    /**
     * 发货面单
     */
    @NotBlank(message = "发货面单不能为空", groups = { AddGroup.class, EditGroup.class })
    private String onlineLogisticsLabel;

    /**
     * 购买凭证
     */
    private String proof;
    /**
     * 子订单id
     */
    private String childOrderId;
    /**
     * 是否使用
     */
    @NotBlank(message = "是否使用不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer isUse;

    /**
     * 乐观锁
     */
    @NotBlank(message = "乐观锁不能为空", groups = { AddGroup.class, EditGroup.class })
    private String revision;

    /**
     * 采购价格
     */
    private String purchasePrice;

    private Integer type;

    private Integer shipmentForTopFlag;
    /**
     * 出库委托单号
     */
    private String consignmentNo;

    private String warehouseCarrierService;

    private String solutionCode;

    /**
     * 货代费用
     */
    private String freightForwardingFee;
}
